#define  _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

//int Strlen(char* arr) {
//	int count = 0;	while (*arr != '\0') {
//		arr++;
//		count++;
//	}
//	return count;
//}
//
//void reverse_string(char* arr) {
//	int left = 0;
//	int right = Strlen(arr) - 1;
//	char tmp = 0;
//	while (left < right) {
//		tmp = arr[right];
//		arr[right] = arr[left];
//		arr[left] = tmp;
//		left++;
//		right--;
//	}
//
//}

//void reverse_string(char* str) {
//	int len = Strlen(str) - 1;
//	char tmp = *str;
//	*str = *(str+len);
//	*(str + len) = '\0';
//	if (Strlen(str+1) >= 2) {
//		reverse_string(str + 1);
//	}
//	*(str + len) = tmp;
//}


//void reverse_string(char* arr) {
//	int left = 0;
//	int right = Strlen(arr) - 1;
//	char tmp = 0;
//	while (left < right) {
//		tmp = arr[right];
//		arr[right] = arr[left];
//		arr[left] = tmp;
//		left++;
//		right--;
//	}
//
//}

//int main() {
//	char arr[] = "abcdef";;
//	reverse_string(arr);
//	printf("%s\n", arr);
//	return 0;
//}

//int Sqrt(int n) {
//	int i = 0;
//	int ret = 1;
//	for (i = 1;i <= n;i++) {
//		ret = ret * i;
//	}
//	return ret;
//}

int Sqrt(int n) {
	
	if (n>1) {

		return   Sqrt(n - 1) * n;
	} 
	return 1;
}


int main() {
	int n = 0;
	int s = 0;
	scanf("%d", &n);
	s = Sqrt(n);
	printf("%d\n", s);
	return 0;
}